package com.mzy.olddate.demo.map;

import java.util.HashMap;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author mzy
 * @Date 2021/8/22 22:38
 * @Version 1.0
 */

/**
 * 用到的技术点:
 * 1.putIfAbsent、put
 * 2.replace
 * 3.remove、clear
 * 4.containsKey、containsValue
 * 5.isEmpty
 */
public class MapMethodTest01 {
    public static void main(String[] args) {
        HashMap<String, String> map1 = new HashMap<>();
        map1.put("x", "123");
        map1.put("y", "456");


//        mapNull(map1); // Map判空
//        mapRemove(map1); // Map删除
//        mapContains(map1); // Map包含
//        mapReplace(map1); // Map替换
        mapPutIfAbsent(map1); // 判断是否存在,存在加，否则不变


//        System.out.println(map1);

    }

    public static void mapNull(HashMap<String, String> map) {
        // Map判空
        boolean empty = map.isEmpty();
        System.out.println("map is null=" + empty);
    }

    public static void mapRemove(HashMap<String, String> map) {
        // Map删除
        map.remove("k"); // key匹配删除
        map.remove("x", "123"); // key与value同时匹配删除
        map.clear(); // map直接清空
    }

    public static void mapContains(HashMap<String, String> map) {
        // Map是否包含
        boolean x = map.containsKey("x");//是否包含key
        boolean b = map.containsValue("123");//是否包含value
        System.out.println(x + "s" + b);
    }

    public static void mapReplace(HashMap<String, String> map) {
        // Map替换
        map.put("x", "888"); // key不存在就添加，存在则更新 -- 有风险
        // map.replace("x","123"); // 只要key存在就更新替换
        // map.replace("x","123","789"); // key和value同时存在就替换
        System.out.println(map);
    }

    public static void mapPutIfAbsent(HashMap<String, String> map) {
        String x = map.putIfAbsent("x", "999");// 如果key存在，则不增加，如果key不存在则增加
        String k = map.putIfAbsent("k", "777");
        System.out.println(map);
        System.out.println(x); // 存在返回本来的值
        System.out.println(k); // 不存在，返回null ifnull，增加等等
    }
}
